# 存放Hermite元相关代码
# 基函数在Reference mesh [0, 1]上
def phi1(xi: float):
    return 1 - 3 * xi**2 + 2 * xi**3

def phi2(xi: float, h: float):
    return h * (xi - 2 * xi**2 + xi**3)

def phi3(xi: float):
    return 3 * xi**2 - 2 * xi**3

def phi4(xi: float, h: float):
    return h * (-xi**2 + xi**3)

def dphi1(xi: float):
    return -6 * xi + 6 * xi**2

def dphi2(xi: float, h: float):
    return h * (1 - 4 * xi + 3 * xi**2)

def dphi3(xi: float):
    return 6 * xi - 6 * xi**2

def dphi4(xi: float, h: float):
    return h * (-2 * xi + 3 * xi**2)
